// import QtQuick 1.0 // to target S60 5th Edition or Maemo 5
import QtQuick 1.1
import com.nokia.symbian 1.1
import "filtro.js" as Filtro

Item {
    id: root

    property string nomeComponente        

    ButtonRow {
        id: btnOpcoes
        width: parent.width
        spacing: 5

        Button {
            text: "Adicionar novo"
            onClicked: {
                root.adicionarItemFiltro();
            }
        }
        Button {
            text: "Remover todos"
            onClicked: {
                root.limparFiltros();
            }
        }
    }

    function adicionarItemFiltro() {
        var componente = Qt.createComponent(root.nomeComponente);        
        var obj = componente.createObject(colMainFiltros);
        return obj;
    }

    function normalizarIndices() {
        for (var i = 0; i < colMainFiltros.children.length; i++) {
            var item = colMainFiltros.children[i];
            item.indice = i;
        }
    }

    function normalizarFiltros() {
        var totalItens = colMainFiltros.children.length;
        if (totalItens > 0) {
            colMainFiltros.children[totalItens - 1].juncao.esconder();
            if (totalItens > 1)
                colMainFiltros.children[totalItens - 2].juncao.mostrar();
        }
    }

    function limparFiltros() {        
        for(var i = 0; i < colMainFiltros.children.length; i++)
            colMainFiltros.children[i].destroy();
    }

    function retornarFiltro() {
        var ret = new Array();
        for (var i = 0; i < colMainFiltros.children.length; i++) {
            var item = colMainFiltros.children[i];
            ret.push([item.tipo, item.sinal.valor, item.valor, item.juncao.valorTratado]);
        }       
        return ret;
    }

    Flickable {
        id: lstFiltrosAtivos;
        anchors { left: parent.left; top: btnOpcoes.bottom; right: parent.right; bottom: parent.bottom; margins: 2}
        contentWidth: lstFiltrosAtivos.width; contentHeight: colMainFiltros.height
        flickableDirection: Flickable.VerticalFlick
        clip: true

        Column {
            id: colMainFiltros
            width: parent.width
            spacing: 5

            onChildrenChanged: {
                root.normalizarFiltros();
                root.normalizarIndices();
            }
        }
    }
}
